import Vue from 'vue'
import VueRouter from 'vue-router'
import Login from '../components/Login.vue'
import Home from '../components/Home.vue'
import Welcome from '../components/Welcome.vue'
import Users from '../components/user/Users.vue'
import Rights from '../components/power/Rights.vue'
import Roles from '../components/power/Roles.vue'

Vue.use(VueRouter)


const router = new VueRouter({
  routes:[
    //路由匹配规则
      //每个路由规则，都是一个对象，这个规则对象，身上，有两个必须的属性：
      //属性1：  path  表示监听哪个路由链接地址
      //属性2：component，表示如果路由是前面匹配到的path，则展示component属性
      //对应的那个组件
    {path:'/', redirect:'/login'},
  {path:'/login', component:Login},
  {
    path:'/Home',
    component:Home, 
    redirect:'/Welcome',
    children:[
      {path:'/Welcome',component:Welcome},
      {path:'/users',component:Users},
      {path:'/rights',component:Rights},
      {path:'/roles',component:Roles}
    ]
  }
]
  
})
//挂载路由导航守卫
router.beforeEach((to,from,next) => {
  //to将要访问的路径
  //from代表从哪个路径跳转而来
  //next是一个函数，表示放行
  //   next()放行    next('/login')强制跳转

  if(to.path === '/login') return next()
  //获取token
  const tokenStr = window.sessionStorage.getItem('token')
  if(!tokenStr) return next ('/login')
  next()
})
export default router
